cmake_minimum_required(VERSION 3.25)
project(mymuduo)

# 设置C++标准
set(CMAKE_CXX_STANDARD 11)
#mymuduo最终编译成so动态库，设置动态库的路径，放在根目录的lib目录下
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/lib)
# 设置调试信息 以及启动c++11标准 -g表示开启调试信息，-Wall表示开启所有警告，-Wextra表示开启额外警告，-Werror表示将警告视为错误
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g  -std=c++11")

# 设置编译选项，是否启用调试日志
option(ENABLE_DEBUG_LOG "Enable debug logging" ON)

# 如果启用调试日志，则添加宏定义MUDEBUG
if(ENABLE_DEBUG_LOG)
  add_definitions(-DMUDEBUG)
endif()

#定义参与编译的源代码文件
aux_source_directory(. SRC_LIST)
# 编译生成动态库 mymuduo是库的名称，SHARED表示编译成动态库
# SRC_LIST是源代码文件列表
add_library(mymuduo SHARED ${SRC_LIST})

# 添加测试程序 只允许单个main函数 因此只能保留需要测试文件的main函数
foreach(test_src Timestamp Logger InetAddress)
  add_executable(test_${test_src} ./${test_src}.cc)
  target_link_libraries(test_${test_src} PRIVATE mymuduo)
endforeach()



